home *** CD-ROM | disk | FTP | other *** search
/ ASME's Mechanical Engine…ing Toolkit 1997 December / ASME's Mechanical Engineering Toolkit 1997 December.iso / auto_cad / balloon.lsp < prev    next >
Lisp/Scheme  |  1988-07-17  |  6KB  |  166 lines

  1. ;; (c)1987                R&J Computer Service
  2. ;                            RR #3  Box 183
  3. ;                          Albion, IN  46701
  4. ;  Phone:                Voice  (219) 636-2460
  5. ;                         Data  (219) 636-3153
  6. ;                   24hrs 2400, 1200, 300 Baud 8-N-1
  7. ;          Balloon.LSP adds Detail Number "Balloons" to drawings
  8. ;                        Written by John Kitt
  9. ; We are NOT responsable for the performance or accuracy of this LISP routine
  10. ;  You are encouraged to copy and distribute this LISP routine
  11. ;  provided this header section IS NOT REMOVED.  For continued
  12. ;  support and new LISP routines you are asked to mail a Registration
  13. ;  fee of $10.00 to the above address.  Thank You!!!
  14. (defun *ERROR* (st) (princ (strcat "*" st)) ' *)
  15. (defun C:BALLOON ()
  16. (setq ECHO (getvar "cmdecho") 
  17.       MODE (getvar "osmode") 
  18.       ORTHO (getvar "orthomode"))
  19. (setvar "orthomode" 0)
  20. (setvar "osmode" 0)
  21. (setvar  "cmdecho" 0)
  22. (command "GRAPHSCR")
  23. (setq RADV 57.29578
  24.       RAD1 (/ 90.0 RADV)
  25.       RAD2 (/ 180.0 RADV)
  26.       RAD3 (/ 270.0 RADV)
  27.       RAD4 0
  28.       PT1 (getpoint "\nEnter arrow start point: ")
  29.       CENPT (getpoint "\nEnter balloon center location: ")
  30.       RAD (angle PT1 CENPT) 
  31.       ARROW (getvar "dimasz") 
  32.       BALRAD 0.1563
  33.       PT2 (polar CENPT RAD (- 0 BALRAD)))
  34. (command "LINE" PT1 PT2 "")
  35. (setq END1 (+ RAD 0.2000)
  36.       END2 (- RAD 0.2000)
  37.       PT3 (polar PT1 END1 ARROW)
  38.       PT4 (polar PT1 END2 ARROW))
  39. (command "LINE" PT1 PT3 PT4 "C")
  40. (command "SOLID" PT1 PT3 PT4 PT4 "")
  41. (setq CENTPT (polar PT2 RAD BALRAD))
  42. (command "CIRCLE" CENTPT BALRAD)
  43. (setq VAR 0)
  44. (while (= VAR 0)
  45. (setq TMPNR (getreal "\nEnter the number of divisions 1 to 4 [1]: "))
  46. (if (= TMPNR nil) (setq TXTDIV 1.0) (setq TXTDIV TMPNR))
  47. (setq VAR TXTDIV)
  48. (if (/= TXTDIV 1.0) (progn
  49. (if (/= TXTDIV 2.0) (progn
  50. (if (/= TXTDIV 3.0) (progn
  51. (if (/= TXTDIV 4.0) (progn (setq VAR 0)
  52. (princ "Invalid Entry....Out of Range"))))))))))
  53. (if (= TXTDIV 1.0) (progn
  54. (setq TXTHT 0.125
  55.       TXTLOC (list (car CENTPT) (- (cadr CENTPT) (/ TXTHT 2.0)))
  56.       VAR1 0)
  57. (while (= VAR1 0)
  58. (setq BALTXT (getstring "\nEnter balloon text (2 char. max.): "))
  59. (if (> (strlen BALTXT) 2) (progn (setq VAR1 0)
  60. (princ "Invalid Entry....Too Many Charactors"))
  61. (setq VAR1 1)))
  62. (command "TEXT" "C" TXTLOC TXTHT 0 BALTXT)))
  63. (if (= TXTDIV 2.0) (progn
  64. (setq TXTHT1 0.2
  65.       TXTHT2 0.18
  66.       TXTLOC1 (list (car CENTPT) (+ (cadr CENTPT) 0.04))
  67.       TXTLOC2 (list (car CENTPT) (- (cadr CENTPT) (+ TXTHT2 0.04)))
  68.       PT5 (polar CENTPT RAD2 BALRAD)
  69.       PT6 (polar CENTPT RAD4 BALRAD))
  70. (command "LINE" PT5 PT6 "")
  71. (setq VAR2 0)
  72. (while (= VAR2 0)
  73. (setq UPTXT (getstring "\nEnter upper text (2 char. max.): "))
  74. (if (> (strlen UPTXT) 2) (progn (setq VAR2 0)
  75. (princ "Invalid Entry....Too Many Charactors")) (progn
  76. (setq VAR2 1)
  77. (command "TEXT" "C" TXTLOC1 TXTHT1 0 UPTXT))))
  78. (setq VAR2 0)
  79. (while (= VAR2 0)
  80. (setq LOWTXT (getstring "\nEnter lower text (2 char. max.): "))
  81. (if (> (strlen LOWTXT) 2) (progn (setq VAR2 0)
  82. (princ "Invalid Entry....Too Many Charactors")) (progn
  83. (setq VAR2 1)
  84. (command "TEXT" "C" TXTLOC2 TXTHT2 0 LOWTXT))))))
  85. (if (= TXTDIV 3.0) (progn
  86. (setq TXTHT1 0.2
  87.       TXTHT2 0.18
  88.       TXTLOC1 (list (car CENTPT) (+ (cadr CENTPT) 0.04))
  89.       TXTLOC2 (list (- (car CENTPT) TXTHT2) (- (cadr CENTPT) (+ TXTHT2 0.04)))
  90.       TXTLOC3 (list (+ (car CENTPT) 0.050) (- (cadr CENTPT) (+ TXTHT2 0.04)))
  91.       PT5 (polar CENTPT RAD2 BALRAD)
  92.       PT6 (polar CENTPT RAD4 BALRAD)
  93.       PT7 (polar CENTPT RAD3 BALRAD))
  94. (command "LINE" PT5 PT6 "")
  95. (command "LINE" CENTPT PT7 "")
  96. (setq VAR3 0)
  97. (while (= VAR3 0)
  98. (setq UPTXT (getstring "\nEnter upper text (2 char. max.): "))
  99. (if (> (strlen UPTXT) 2) (progn (setq VAR3 0)
  100. (princ "Invalid Entry....Too Many Charactors")) (progn
  101. (setq VAR3 1)
  102. (command "TEXT" "C" TXTLOC1 TXTHT1 0 UPTXT))))
  103. (setq VAR3 0)
  104. (while (= VAR3 0)
  105. (setq LLTXT (getstring "\nEnter lower left text (1 char. max.): "))
  106. (if (> (strlen LLTXT) 1) (progn (setq VAR3 0)
  107. (princ "Invalid Entry....Too Many Charactors")) (progn
  108. (setq VAR3 1)
  109. (command "TEXT" TXTLOC2 TXTHT2 0 LLTXT))))
  110. (setq VAR3 0)
  111. (while (= VAR3 0)
  112. (setq LRTXT (getstring "\nEnter lower right text (1 char. max.): "))
  113. (if (> (strlen LRTXT) 1) (progn (setq VAR3 0)
  114. (princ "Invalid Entry....Too Many Charactors")) (progn
  115. (setq VAR3 1)
  116. (command "TEXT" TXTLOC3 TXTHT2 0 LRTXT))))))
  117. (if (= TXTDIV 4.0) (progn
  118. (setq TXTHT1 0.19
  119.       TXTHT2 0.17
  120.       TXTLOC1 (list (- (car CENTPT) TXTHT1) (+ (cadr CENTPT) 0.045))
  121.       TXTLOC2 (list (+ (car CENTPT) 0.05) (+ (cadr CENTPT) 0.045))
  122.       TXTLOC3 (list (- (car CENTPT) TXTHT2) (- (cadr CENTPT) (+ TXTHT2 0.045)))
  123.       TXTLOC4 (list (+ (car CENTPT) 0.055) (- (cadr CENTPT) (+ TXTHT2 0.045)))
  124.       PT5 (polar CENTPT RAD2 BALRAD)
  125.       PT6 (polar CENTPT RAD4 BALRAD)
  126.       PT7 (polar CENTPT RAD1 BALRAD)
  127.       PT8 (polar CENTPT RAD3 BALRAD))
  128. (command "LINE" PT5 PT6 "")
  129. (command "LINE" PT7 PT8 "")
  130. (setq VAR4 0)
  131. (while (= VAR4 0)
  132. (setq ULTXT (getstring "\nEnter upper left text (1 char. max.): "))
  133. (if (> (strlen ULTXT) 1) (progn (setq VAR4 0)
  134. (princ "Invalid Entry....Too Many Charactors")) (progn
  135. (setq VAR4 1)
  136. (command "TEXT" TXTLOC1 TXTHT1 0 ULTXT))))
  137. (setq VAR4 0)
  138. (while (= VAR4 0)
  139. (setq URTXT (getstring "\nEnter upper right text (1 char. max.): "))
  140. (if (> (strlen URTXT) 1) (progn (setq VAR4 0)
  141. (princ "Invalid Entry....Too Many Charactors")) (progn
  142. (setq VAR4 1)
  143. (command "TEXT" TXTLOC2 TXTHT1 0 URTXT))))
  144. (setq VAR4 0)
  145. (while (= VAR4 0)
  146. (setq LLTXT (getstring "\nEnter lower left text (1 char. max.): "))
  147. (if (> (strlen LLTXT) 1) (progn (setq VAR4 0)
  148. (princ "Invalid Entry....Too Many Charactors")) (progn
  149. (setq VAR4 1)
  150. (command "TEXT" TXTLOC3 TXTHT2 0 LLTXT))))
  151. (setq VAR4 0)
  152. (while (= VAR4 0)
  153. (setq LRTXT (getstring "\nEnter lower right text (1 char. max.): "))
  154. (if (> (strlen LRTXT) 1) (progn (setq VAR4 0)
  155. (princ "Invalid Entry....Too Many Charactors")) (progn
  156. (setq VAR4 1)
  157. (command "TEXT" TXTLOC4 TXTHT2 0 LRTXT))))))
  158. (setvar "osmode" MODE)
  159. (setvar "cmdecho" ECHO)
  160. (setvar "orthomode" ORTHO)
  161. (command)
  162. )
  163. )
  164.       RAD3 (/ 270.0 RADV)
  165.       RAD4 0
  166.       PT1 (getpoint "\nEnter arrow start poi